INTRODUCTION TO PROGRAMMING

Course Code
02.03Κ
ECTS Credits
6
Semester
2nd Semester
Course Category

Compulsory

Compulsory

Professor

ΓΕΩΡΓΙΟΣ ΝΟΚΑΣ

ΘΕΟΔΩΡΟΣ ΚΟΤΣΙΛΙΕΡΗΣ

Course Description
GENERAL
TEACHING METHODS: TEACHING HOURS (WEEKLY)

Lectures

Laboratory

2

1

COURSE TYPE: General Background
COURSE PREREQUISITES: None
TEACHING LANGUAGE: Greek
THE COURSE IS OFFERED TO ERASMUS STUDENTS: No
LEARNIING RESULTS
Course Description and Learning Objectives

The aim of the course is to introduce students to the philosophy of object-oriented programming and to enable them to become familiar with programming in a high-level language. Upon completion of the course, students will be able to develop stand-alone code but will also have a suitable background to cope with more advanced programming courses.

Upon completion of the course students will have:

Knowledge: understand and analyze data structures and algorithms to solve problems. To learn the object-oriented programming model through a 3rd generation language

Skills: To apply the methodology of developing the programming background

Competencies: To develop stand-alone code but will also have a suitable background to cope with more advanced programming courses

Competencies

The competences expected to be acquired by the graduate are the following:

1.Search, analysis and processing of data and information, using the necessary technologies

2.Decision-making and development of relevant tools using ICTs

3.Autonomous work

4.Group work

5.Generating new research ideas

CONTENT

The course focuses on the acquisition of the necessary skills and knowledge so that students could understand and apply modern programming techniques and languages in the light of data structure analysis and modeling - development of algorithms for problem solving in the modern business environment.

The course is structured in 13 modules, as shown in the following table.

1. Introduction to object-oriented programming: Introduction to the Python language. Introduction to Python.

2.Classes and Objects: Attributes, properties, subclasses, inheritance, initialization, polymorphism

3.Lists: Positional pointers, list modification, list part replacement, alphanumerics, formatting of alphanumerics, methods of alphanumerics.

4.Program Flow Control & Control Structures: Flow control with if, conditions & comparison operators, the while loop, the for loop, iterations in dictionaries, parallel iterations, examples of flow control, examples of using control structures, if, while, for, nested iterations, defining and managing arrays, convergent sum.

5.Functions: Parameters, scope of variables, program structuring, functions as objects, parameter locality, value/reference passing, recursive functions (examples: raise to power, factorial, Fibonacci numbers), complexity and program execution time.

6.Concurrent programming and threads - Error and exception handling: basic thread operations, locks, synchronization, types of errors, types of exceptions, exception declaration and handling, debugging.

7.Basic Data and Algorithm Concepts: Data Types and Data Structures, Tables, One-dimensional Tables, Two-dimensional Tables, Advanced Structure (Tables with Structures or Records), Tables of Structures, Indexes in Structures, Algorithms, Random Number Generation

8.Search, Sorting, Algorithms and Applications to Tables: Criteria for categorization of sorting algorithms, Insertion sort, Selection sort, Bubble sort, Serial and binary search, Partitioning and median table

9.Data structures: stack, queue, linked lists

10.Recursion and Tree Structures: Recursion, Trees, Binary trees, Priority queues and heaps, B-Trees, Red-Black trees

11.Algorithm Design and Analysis.

12.Graph Theory: Definitions and Properties of Graphs, Circle and Euler Graph, Hamilton Graph, Graph Representation, The Chinese Postman Problem

13.Graph Algorithms: Traversing or Visiting a Graph, Distance Table, Known Basic Graph Problems, Optimization and ACO (Ant Colony Optimization) Algorithms

Bibliography :Papoutsis I., "Introduction to Data Structures and Algorithms", Stamoulis Publications, 2010, 2nd edition

TEACHING and LEARNING METHODS - EVALUATION
TEACHING METHOD

- Lectures in class

- Uploading material for further study and solving laboratory exercises on the e-class platform

 

USE OF INFORMATION AND COMMUNICATION TECHNOLOGIES

- Use of information and communication technologies in teaching and laboratory training, as follows:

- Exercises using web-based interpreters

- Additional and freely available material for consolidating theory and solving exercises via the Internet and social media

- Support for the learning process through the e-class platform

- Communication with students via the e-class platform

METHODS OF INSTRUCTION
Method Semester workload
Lectures 39
Exercises where students either in small groups or individually will practice applying the theory. The exercises will be presented by the teacher and solved by the students asynchronously. The answer will be provided exclusively through the e-class platform or cloud computing tools (webmail, google-drive, etc.) 40
Independent Study 71
Total workload in hours 150
STUDENT LEARNING ASSESMENT

The evaluation will be conducted in Greek in three distinct ways:

1.Three types of assessment: Multiple choice questions, short answer questions.

2.Exercises (20%) which will be assessed as follows: Ability to solve problems in groups, writing a report on the proposed solution, public presentation

3.Final examination (60%) to be conducted by: Multiple choice questions, Problem solving, Short answer questions, Development of theory elements, Role and stakeholder analysis in brief, Case study, Comparative evaluation of theory elements

RECOMMENDED-BIBLIOGRAPHY

1.Papoutsis I., "Introduction to Data Structures and Algorithms", Stamoulis Publications, 2016, 2nd edition

2. Nell Dale, John Lewis, «Computer Science Illuminated», Third Edition

3.Introduction to Object Oriented Programming with Python - An Approach from the Computer Systems Side, Magoutis Konstantinos - Nikolaou Christos, Greek Academic Ebooks, Kallipos, 2015, (available from: https://repository.kallipos.gr/handle/11419/1708)

4.Introduction to Programming with Python, Manis Georgios, Greek Academic Ebooks, Kallipos, 2015, (available from: https://repository.kallipos.gr/handle/11419/2745)